1. Field of the Invention
The present invention relates in general to video information processing, and more specifically to a system and method of determining a deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers for reducing bits in the bitstream.
2. Description of the Related Art
The Advanced Video Coding (AVC) standard, Part 10 of MPEG4 (Motion Picture Experts Group), otherwise known as H.264, includes advanced compression techniques that were developed to enable transmission of video signals at a lower bit rate or storage of video signals using less storage space. The newer standard outperforms video compression techniques of prior standards in order to support higher quality streaming video at lower bit-rates and to enable internet-based video and wireless applications and the like. The standard does not define the CODEC (encoder/decoder pair) but instead defines the syntax of the encoded video bitstream along with a method of decoding the bitstream. Each video frame is subdivided and encoded at the macroblock (MB) level, where each MB is a 16×16 block of pixels. Each MB is encoded in ‘intraframe’ mode in which a prediction MB is formed based on reconstructed MBs in the current frame, or ‘interframe’ mode in which a prediction MB is formed based on the MBs of the reference frames. The intraframe coding mode applies spatial information within the current frame in which the prediction MB is formed from samples in the current frame that have previously encoded, decoded and reconstructed. The interframe coding mode utilizes temporal information from previous and/or future reference frames to estimate motion to form the prediction MB. The video information is typically processed and transmitted in slices, in which each video slice incorporates one or more macroblocks.
Scalable Video Coding (SVC) is an extension of the H.264 standard which addresses coding schemes for reliably delivery of video to diverse clients over heterogeneous networks using available system resources, particularly in scenarios where the downstream client capabilities, system resources, and network conditions are not known in advance, or dynamically changing from time to time. SVC provides multiple levels or layers of scalability including temporal scalability, spatial scalability, complexity scalability and quality scalability. Temporal scalability generally refers to the number of frames per second (fps) of the video stream, such as 7.5 fps, 15 fps, 30 fps, etc. Spatial scalability refers to the resolution of each frame, such as common interface format (CIF) with 352 by 288 pixels per frame, or quarter CIF (QCIF) with 176 by 144 pixels per frame, although other spatial resolutions are contemplated, such as 4CIF, QVGA, VGA, SVGA, D1, HDTV, etc. Complexity scalability generally refers to the various computational capabilities and processing power of the devices processing the video information. Quality scalability generally refers to the visual quality layers of the coded video by using different bitrates. Objectively, visual quality is measured with a peak signal-to-noise (PSNR) metric defining the relative quality of a reconstructed image compared with an original image.
A deblocking filter is a formative part of the H.264 standard and SVC extension, and an informative part (as a post processing block) of the earlier H.263 standard and MPEG4-Part2. The deblocking filter performs both luma and chroma filtering as known by those of ordinary skill in the art. The deblocking filter is used either as an in-loop filter as part of the standard (e.g., H.264/AVC), or as a post-processor for video decoder (e.g., H.263, MPEG4-part2, MPEG-2, etc.). The deblocking filter enhances the decoded picture quality and increases the encoding efficiency by removing the block effects in the boundary of each 4×4, 8×8, and/or 16×16 block. The deblocking filter, however, also consumes a significant amount of power and processing cycles. Generally speaking, the entire deblocking filter (both luma and chroma) consumes approximately 8% of the computations at the encoder and approximately 35% at the decoder for H.264/AVC. Disabling the entire deblocking filter, therefore, provides a significant reduction of power and processing complexity, especially in the decoder. A conventional configuration according to H.264/AVC includes the ability to turn on and off the entire deblocking filter (including both luma and chroma deblock filtering). Disabling the entire deblocking filter, however, potentially causes degradation of both objective PSNR and subjective visual quality especially for video information having a relatively high level of motion. In most conventional configurations, therefore, the ability to completely disable the deblocking filter has not been used.
The bitstream carrying the video sequence generated and transmitted by an SVC video encoder is organized into multiple frames in which each frame includes multiple slices. Each frame header includes a frame header and the slices of the frame include base layer slices and enhanced layer slices, where each slice includes a slice header. The frame header includes a deblocking control flag indicating whether deblocking parameters are presented within the slice headers of the base layer slices and the enhanced layer slices. The deblocking parameters determine whether deblock filtering is enabled or disabled and additional deblocking settings when enabled. A deblocking enable/disable parameter is set to “0” to enable deblock filtering and to “1” to disable deblock filtering.
In conventional SVC configurations, the deblocking control flag is limited to the values “0” and “1”, in which “0” indicates that deblocking parameters are not presented for any layers and “1” in which deblocking parameters are presented for all layers. If the deblocking control flag is “1”, then deblock filtering may be disabled for the base layer (by setting the deblocking enable/disable parameter for the base layer to “1”) or may be disabled for the enhanced layers to reduce processing cycles and/or power consumption. If deblock filtering is not needed for the base layer but is needed for the enhanced layer or if needed at the base layer but not the enhanced layers, then the deblocking control flag must be set to “1” at the expense of additional bits in the bitstream. The additional bits for the deblocking parameters had to be presented even if deblocking is not to be disabled and could otherwise be set to the default value of “0”. The deblocking control flag could be set to “0” to reduce the bits in the bitstream since the deblocking parameters are not presented in the slice headers, yet this is at the expense of additional processing cycles and/or power consumption required for deblock filtering. The conventional syntax thus wastes bits in the bitstream.
It is desired to reduce the number of bits in the bitstream by allowing the encoder designer the option of not having to present deblocking parameters for either the base layer slices or the enhanced layer slices while disabling deblock filtering of at least one layer.